{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# The Very Basics of Musical Instruments Classification using Machine Learning\n",
    " \n",
    " \n",
    "<p align=\"right\">\n",
    "<img src=\"./img/knn.png\" width=\"500px\" alt=\"Intro\" align=\"left\" >\n",
    "</p>\n",
    "\n",
    "<br>\n",
    "\n",
    "<p align=\"left\">\n",
    "<img src=\"./img/businesscard.jpg\" width=\"300px\" alt=\"Business Card\" align=\"left\" >\n",
    "</p>\n",
    "<br>\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/p_IU6uRqHvE\" \n",
       "frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\"></iframe>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%html\n",
    "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/p_IU6uRqHvE\" \n",
    "frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\"></iframe>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Imports\n",
    "\n",
    "#General\n",
    "import numpy as np\n",
    "import itertools\n",
    "\n",
    "# System\n",
    "import os, fnmatch\n",
    "\n",
    "# Visualization\n",
    "import seaborn #visualization library, must be imported before all other plotting libraries\n",
    "import matplotlib.pyplot as plt\n",
    "from IPython.core.display import HTML, display\n",
    "\n",
    "# Machine Learning\n",
    "from sklearn.preprocessing import LabelEncoder\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.model_selection import StratifiedShuffleSplit\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.metrics import recall_score, precision_score, accuracy_score\n",
    "from sklearn.metrics import confusion_matrix, f1_score, classification_report\n",
    "\n",
    "# Random Seed\n",
    "from numpy.random import seed\n",
    "seed(1)\n",
    "\n",
    "# Audio\n",
    "import librosa.display, librosa"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Auxiliary Functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Function to Display a Website\n",
    "def show_web(url):\n",
    "    html_code='<center><iframe src=\"%s\" width=\"800\" height=\"600\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\">Loading...</iframe></center>' \\\n",
    "\t\t% (url)\n",
    "    display(HTML(html_code))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<center><iframe src=\"https://www.philharmonia.co.uk/explore/sound_samples\" width=\"800\" height=\"600\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\">Loading...</iframe></center>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Dataset Information\n",
    "show_web(\"https://www.philharmonia.co.uk/explore/sound_samples\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Get filenames"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "found 600 audio files in ./audio/london_phill_dataset_multi/\n"
     ]
    }
   ],
   "source": [
    "# Get files in data path\n",
    "path='./audio/london_phill_dataset_multi/'\n",
    "# Get Audio Files\n",
    "files = []\n",
    "for root, dirnames, filenames in os.walk(path):\n",
    "    for filename in fnmatch.filter(filenames, '*.mp3'):\n",
    "        files.append(os.path.join(root, filename))\n",
    "\n",
    "print(\"found %d audio files in %s\"%(len(files),path))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Prepare labels from filenames"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Get Labels\n",
    "labels =[]\n",
    "classes=['flute','sax','oboe', 'cello','trumpet','viola']\n",
    "color_dict={'cello':'blue', 'flute':'red', 'oboe':'green', 'trumpet':'black', 'sax':'magenta', 'viola':'yellow'}\n",
    "color_list=[]\n",
    "for filename in files:\n",
    "    for name in classes:\n",
    "        if fnmatch.fnmatchcase(filename, '*'+name+'*'):\n",
    "            labels.append(name)\n",
    "            color_list.append(color_dict[name])\n",
    "            break\n",
    "    else:\n",
    "        labels.append('other')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Encode Labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6 classes: cello, flute, oboe, sax, trumpet, viola\n"
     ]
    }
   ],
   "source": [
    "# Encode Labels\n",
    "labelencoder = LabelEncoder()\n",
    "labelencoder.fit(labels)\n",
    "print(len(labelencoder.classes_), \"classes:\", \", \".join(list(labelencoder.classes_)))\n",
    "classes_num = labelencoder.transform(labels)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Parameters for MFCC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Parameters\n",
    "# Signal Processing Parameters\n",
    "fs = 44100         # Sampling Frequency\n",
    "n_fft = 2048       # length of the FFT window\n",
    "hop_length = 512   # Number of samples between successive frames\n",
    "n_mels = 128       # Number of Mel bands\n",
    "n_mfcc = 13        # Number of MFCCs\n",
    "\n",
    "# Machine Learning Parameters\n",
    "testset_size = 0.25 #Percentage of data for Testing\n",
    "n_neighbors=1       # Number of neighbors for kNN Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<center><iframe src=\"https://musicinformationretrieval.com/mfcc.html\" width=\"800\" height=\"600\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\">Loading...</iframe></center>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "show_web('https://musicinformationretrieval.com/mfcc.html')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Function to Calculate Audio Features: MFCC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define Function to Calculate MFCC, Delta_MFCC and Delta2_MFCC\n",
    "def get_features(y, sr=fs):\n",
    "    S = librosa.feature.melspectrogram(y, sr=fs, n_mels=n_mels)\n",
    "    mfcc = librosa.feature.mfcc(S=librosa.power_to_db(S), n_mfcc=n_mfcc)\n",
    "    feature_vector = np.mean(mfcc,1)\n",
    "    #feature_vector = (feature_vector-np.mean(feature_vector))/np.std(feature_vector)\n",
    "    return feature_vector"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load audio files, calculate features and create feature vectors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "get 1 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_15_piano_normal.mp3\n",
      "get 2 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs6_025_piano_normal.mp3\n",
      "get 3 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_15_mezzo-forte_normal.mp3\n",
      "get 4 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs6_05_mezzo-forte_normal.mp3\n",
      "get 5 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_05_forte_normal.mp3\n",
      "get 6 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_1_forte_minor-trill.mp3\n",
      "get 7 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_As3_1_fortissimo_normal.mp3\n",
      "get 8 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_025_fortissimo_normal.mp3\n",
      "get 9 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_G6_025_piano_normal.mp3\n",
      "get 10 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_15_mezzo-forte_normal.mp3\n",
      "get 11 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A6_1_forte_minor-trill.mp3\n",
      "get 12 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_15_forte_normal.mp3\n",
      "get 13 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_05_mezzo-forte_normal.mp3\n",
      "get 14 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_15_fortissimo_normal.mp3\n",
      "get 15 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_G6_025_forte_normal.mp3\n",
      "get 16 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_05_forte_normal.mp3\n",
      "get 17 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Ds6_05_fortissimo_normal.mp3\n",
      "get 18 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs6_1_forte_normal.mp3\n",
      "get 19 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A4_025_fortissimo_normal.mp3\n",
      "get 20 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_1_forte_normal.mp3\n",
      "get 21 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Ds6_05_mezzo-forte_normal.mp3\n",
      "get 22 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_1_forte_major-trill.mp3\n",
      "get 23 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs6_1_piano_normal.mp3\n",
      "get 24 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_As3_1_mezzo-forte_normal.mp3\n",
      "get 25 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_1_fortissimo_normal.mp3\n",
      "get 26 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs6_05_piano_normal.mp3\n",
      "get 27 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_As3_15_mezzo-forte_normal.mp3\n",
      "get 28 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_025_forte_normal.mp3\n",
      "get 29 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_1_mezzo-forte_normal.mp3\n",
      "get 30 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_15_piano_normal.mp3\n",
      "get 31 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A4_025_forte_normal.mp3\n",
      "get 32 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_As3_05_piano_normal.mp3\n",
      "get 33 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_05_forte_normal.mp3\n",
      "get 34 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_025_fortissimo_normal.mp3\n",
      "get 35 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A4_1_mezzo-forte_normal.mp3\n",
      "get 36 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Ds6_15_forte_normal.mp3\n",
      "get 37 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_15_fortissimo_normal.mp3\n",
      "get 38 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_1_mezzo-forte_normal.mp3\n",
      "get 39 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_025_piano_normal.mp3\n",
      "get 40 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_1_fortissimo_normal.mp3\n",
      "get 41 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A6_15_piano_normal.mp3\n",
      "get 42 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A4_05_fortissimo_normal.mp3\n",
      "get 43 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_As3_1_forte_normal.mp3\n",
      "get 44 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs6_05_forte_normal.mp3\n",
      "get 45 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A6_025_piano_normal.mp3\n",
      "get 46 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_025_mezzo-forte_normal.mp3\n",
      "get 47 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_As3_05_forte_normal.mp3\n",
      "get 48 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_15_piano_normal.mp3\n",
      "get 49 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A4_15_forte_normal.mp3\n",
      "get 50 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A6_1_forte_major-trill.mp3\n",
      "get 51 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_15_forte_normal.mp3\n",
      "get 52 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_025_piano_normal.mp3\n",
      "get 53 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A6_05_piano_normal.mp3\n",
      "get 54 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_15_mezzo-forte_normal.mp3\n",
      "get 55 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_025_mezzo-forte_normal.mp3\n",
      "get 56 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_05_fortissimo_normal.mp3\n",
      "get 57 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_G6_025_mezzo-forte_normal.mp3\n",
      "get 58 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_1_piano_normal.mp3\n",
      "get 59 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_As3_05_fortissimo_normal.mp3\n",
      "get 60 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A4_05_forte_normal.mp3\n",
      "get 61 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_025_piano_normal.mp3\n",
      "get 62 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A4_1_piano_normal.mp3\n",
      "get 63 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_05_piano_normal.mp3\n",
      "get 64 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_05_mezzo-forte_normal.mp3\n",
      "get 65 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs6_15_mezzo-forte_normal.mp3\n",
      "get 66 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Ds6_05_piano_normal.mp3\n",
      "get 67 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_1_fortissimo_normal.mp3\n",
      "get 68 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_15_fortissimo_normal.mp3\n",
      "get 69 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs6_025_mezzo-forte_normal.mp3\n",
      "get 70 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_025_forte_normal.mp3\n",
      "get 71 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A4_025_piano_normal.mp3\n",
      "get 72 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_As3_15_fortissimo_normal.mp3\n",
      "get 73 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A6_1_piano_normal.mp3\n",
      "get 74 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_1_forte_minor-trill.mp3\n",
      "get 75 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_15_forte_normal.mp3\n",
      "get 76 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_05_fortissimo_normal.mp3\n",
      "get 77 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_As3_05_mezzo-forte_normal.mp3\n",
      "get 78 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs6_15_forte_normal.mp3\n",
      "get 79 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_025_fortissimo_normal.mp3\n",
      "get 80 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A4_1_forte_normal.mp3\n",
      "get 81 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs6_025_forte_normal.mp3\n",
      "get 82 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A4_1_fortissimo_normal.mp3\n",
      "get 83 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_1_piano_normal.mp3\n",
      "get 84 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_As3_15_forte_normal.mp3\n",
      "get 85 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_025_forte_normal.mp3\n",
      "get 86 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A4_05_piano_normal.mp3\n",
      "get 87 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_1_piano_normal.mp3\n",
      "get 88 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs6_15_piano_normal.mp3\n",
      "get 89 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A4_15_piano_normal.mp3\n",
      "get 90 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_05_fortissimo_normal.mp3\n",
      "get 91 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_025_mezzo-forte_normal.mp3\n",
      "get 92 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_1_mezzo-forte_normal.mp3\n",
      "get 93 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_05_piano_normal.mp3\n",
      "get 94 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_1_forte_normal.mp3\n",
      "get 95 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs5_1_forte_normal.mp3\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "get 96 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs6_1_mezzo-forte_normal.mp3\n",
      "get 97 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_A5_05_piano_normal.mp3\n",
      "get 98 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_As3_1_piano_normal.mp3\n",
      "get 99 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_05_mezzo-forte_normal.mp3\n",
      "get 100 of 600 = ./audio/london_phill_dataset_multi/oboe/oboe_Gs4_1_forte_major-trill.mp3\n",
      "get 101 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_D6_05_forte_normal.mp3\n",
      "get 102 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_C4_025_pianissimo_normal.mp3\n",
      "get 103 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Ds4_05_forte_normal.mp3\n",
      "get 104 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_D4_15_pianissimo_normal.mp3\n",
      "get 105 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Cs4_05_pianissimo_normal.mp3\n",
      "get 106 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Gs5_05_mezzo-forte_normal.mp3\n",
      "get 107 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_B3_15_pianissimo_normal.mp3\n",
      "get 108 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_D4_1_pianissimo_normal.mp3\n",
      "get 109 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Gs4_05_forte_normal.mp3\n",
      "get 110 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Ds4_15_pianissimo_normal.mp3\n",
      "get 111 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Ds4_025_pianissimo_normal.mp3\n",
      "get 112 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Gs4_025_forte_normal.mp3\n",
      "get 113 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_As3_025_pianissimo_normal.mp3\n",
      "get 114 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_B3_025_forte_normal.mp3\n",
      "get 115 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_As3_025_forte_normal.mp3\n",
      "get 116 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_A3_15_pianissimo_normal.mp3\n",
      "get 117 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_E4_15_pianissimo_normal.mp3\n",
      "get 118 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_F3_025_pianissimo_normal.mp3\n",
      "get 119 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_D4_05_forte_normal.mp3\n",
      "get 120 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_A3_1_pianissimo_normal.mp3\n",
      "get 121 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_As5_05_forte_normal.mp3\n",
      "get 122 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_As5_025_forte_normal.mp3\n",
      "get 123 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_E3_1_forte_normal.mp3\n",
      "get 124 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_A4_05_forte_normal.mp3\n",
      "get 125 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_E6_1_forte_normal.mp3\n",
      "get 126 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Cs4_1_pianissimo_normal.mp3\n",
      "get 127 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Cs4_15_pianissimo_normal.mp3\n",
      "get 128 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Ds6_05_forte_normal.mp3\n",
      "get 129 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_B5_025_forte_normal.mp3\n",
      "get 130 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_E3_05_forte_normal.mp3\n",
      "get 131 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_C4_025_forte_normal.mp3\n",
      "get 132 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_B3_05_pianissimo_normal.mp3\n",
      "get 133 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_A4_025_forte_normal.mp3\n",
      "get 134 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_C4_05_forte_normal.mp3\n",
      "get 135 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_D6_025_forte_normal.mp3\n",
      "get 136 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_As3_1_pianissimo_normal.mp3\n",
      "get 137 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Ds6_025_forte_normal.mp3\n",
      "get 138 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_G5_05_mezzo-forte_normal.mp3\n",
      "get 139 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_D5_05_forte_normal.mp3\n",
      "get 140 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Ds5_05_forte_normal.mp3\n",
      "get 141 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_E3_05_pianissimo_normal.mp3\n",
      "get 142 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Cs4_025_pianissimo_normal.mp3\n",
      "get 143 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_C4_1_pianissimo_normal.mp3\n",
      "get 144 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Gs3_1_forte_normal.mp3\n",
      "get 145 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_G3_025_pianissimo_normal.mp3\n",
      "get 146 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_E4_1_pianissimo_normal.mp3\n",
      "get 147 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_F3_1_forte_normal.mp3\n",
      "get 148 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_F3_15_pianissimo_normal.mp3\n",
      "get 149 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_F3_025_forte_normal.mp3\n",
      "get 150 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_E3_15_pianissimo_normal.mp3\n",
      "get 151 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Cs6_025_forte_normal.mp3\n",
      "get 152 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_D4_05_pianissimo_normal.mp3\n",
      "get 153 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_D4_025_pianissimo_normal.mp3\n",
      "get 154 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_F4_025_pianissimo_normal.mp3\n",
      "get 155 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Gs3_05_forte_normal.mp3\n",
      "get 156 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Gs3_025_pianissimo_normal.mp3\n",
      "get 157 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_As3_15_pianissimo_normal.mp3\n",
      "get 158 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_E4_025_pianissimo_normal.mp3\n",
      "get 159 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_B3_025_pianissimo_normal.mp3\n",
      "get 160 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_B5_025_mezzo-forte_normal.mp3\n",
      "get 161 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Gs3_1_pianissimo_normal.mp3\n",
      "get 162 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_E3_1_pianissimo_normal.mp3\n",
      "get 163 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_G3_1_pianissimo_normal.mp3\n",
      "get 164 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_G5_15_mezzo-forte_normal.mp3\n",
      "get 165 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Gs3_05_pianissimo_normal.mp3\n",
      "get 166 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_D4_025_forte_normal.mp3\n",
      "get 167 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_A3_05_forte_normal.mp3\n",
      "get 168 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Gs3_15_pianissimo_normal.mp3\n",
      "get 169 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Cs4_05_forte_normal.mp3\n",
      "get 170 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_As5_05_mezzo-forte_normal.mp3\n",
      "get 171 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_F4_05_pianissimo_normal.mp3\n",
      "get 172 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_C4_05_pianissimo_normal.mp3\n",
      "get 173 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_C6_05_forte_normal.mp3\n",
      "get 174 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Ds4_1_pianissimo_normal.mp3\n",
      "get 175 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_E3_025_pianissimo_normal.mp3\n",
      "get 176 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_As3_05_pianissimo_normal.mp3\n",
      "get 177 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Ds4_05_pianissimo_normal.mp3\n",
      "get 178 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_C6_025_forte_normal.mp3\n",
      "get 179 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_A3_025_pianissimo_normal.mp3\n",
      "get 180 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_E4_05_pianissimo_normal.mp3\n",
      "get 181 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_A3_05_pianissimo_normal.mp3\n",
      "get 182 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_B3_1_pianissimo_normal.mp3\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "get 183 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_E6_025_forte_normal.mp3\n",
      "get 184 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_A5_025_forte_normal.mp3\n",
      "get 185 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_G3_15_pianissimo_normal.mp3\n",
      "get 186 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_A5_025_mezzo-forte_normal.mp3\n",
      "get 187 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_B4_025_forte_normal.mp3\n",
      "get 188 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_A5_05_mezzo-forte_normal.mp3\n",
      "get 189 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Gs5_025_forte_normal.mp3\n",
      "get 190 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_G5_025_mezzo-forte_normal.mp3\n",
      "get 191 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Gs5_05_forte_normal.mp3\n",
      "get 192 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_F3_05_pianissimo_normal.mp3\n",
      "get 193 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_Gs5_025_mezzo-forte_normal.mp3\n",
      "get 194 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_F3_1_pianissimo_normal.mp3\n",
      "get 195 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_B3_05_forte_normal.mp3\n",
      "get 196 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_F3_05_forte_normal.mp3\n",
      "get 197 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_G5_1_mezzo-forte_normal.mp3\n",
      "get 198 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_G3_05_pianissimo_normal.mp3\n",
      "get 199 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_As4_025_forte_normal.mp3\n",
      "get 200 of 600 = ./audio/london_phill_dataset_multi/trumpet/trumpet_C4_15_pianissimo_normal.mp3\n",
      "get 201 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_1_mezzo-piano_non-vibrato.mp3\n",
      "get 202 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_15_forte_arco-normal.mp3\n",
      "get 203 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_1_mezzo-piano_arco-minor-trill.mp3\n",
      "get 204 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_15_fortissimo_arco-normal.mp3\n",
      "get 205 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_05_forte_arco-normal.mp3\n",
      "get 206 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_05_fortissimo_arco-normal.mp3\n",
      "get 207 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_025_mezzo-forte_arco-col-legno-battuto.mp3\n",
      "get 208 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_15_forte_arco-normal.mp3\n",
      "get 209 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_025_mezzo-piano_arco-normal.mp3\n",
      "get 210 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_05_pianissimo_arco-normal.mp3\n",
      "get 211 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_1_mezzo-piano_molto-vibrato.mp3\n",
      "get 212 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_1_forte_arco-normal.mp3\n",
      "get 213 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_1_fortissimo_arco-normal.mp3\n",
      "get 214 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_1_pianissimo_arco-normal.mp3\n",
      "get 215 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_1_fortissimo_arco-normal.mp3\n",
      "get 216 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_05_pianissimo_arco-normal.mp3\n",
      "get 217 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_025_fortissimo_arco-normal.mp3\n",
      "get 218 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_025_pianissimo_arco-normal.mp3\n",
      "get 219 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_05_forte_arco-normal.mp3\n",
      "get 220 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_025_mezzo-forte_arco-col-legno-battuto.mp3\n",
      "get 221 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_1_forte_arco-normal.mp3\n",
      "get 222 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_025_fortissimo_arco-normal.mp3\n",
      "get 223 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_15_piano_arco-normal.mp3\n",
      "get 224 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_1_mezzo-piano_arco-normal.mp3\n",
      "get 225 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_1_forte_arco-normal.mp3\n",
      "get 226 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_15_forte_arco-normal.mp3\n",
      "get 227 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_025_forte_arco-normal.mp3\n",
      "get 228 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_15_fortissimo_arco-normal.mp3\n",
      "get 229 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_025_pianissimo_arco-normal.mp3\n",
      "get 230 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_025_forte_arco-normal.mp3\n",
      "get 231 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_1_mezzo-piano_arco-normal.mp3\n",
      "get 232 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_025_forte_arco-normal.mp3\n",
      "get 233 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_05_mezzo-piano_arco-normal.mp3\n",
      "get 234 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_1_forte_arco-normal.mp3\n",
      "get 235 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_1_mezzo-piano_arco-normal.mp3\n",
      "get 236 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_025_pianissimo_arco-normal.mp3\n",
      "get 237 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_025_fortissimo_arco-normal.mp3\n",
      "get 238 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_15_pianissimo_arco-normal.mp3\n",
      "get 239 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_025_fortissimo_arco-normal.mp3\n",
      "get 240 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_025_mezzo-piano_arco-normal.mp3\n",
      "get 241 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_025_fortissimo_arco-normal.mp3\n",
      "get 242 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_1_mezzo-piano_arco-minor-trill.mp3\n",
      "get 243 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_15_pianissimo_arco-normal.mp3\n",
      "get 244 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_1_mezzo-piano_arco-normal.mp3\n",
      "get 245 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_025_fortissimo_arco-normal.mp3\n",
      "get 246 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_025_forte_arco-normal.mp3\n",
      "get 247 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_1_forte_arco-normal.mp3\n",
      "get 248 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_025_mezzo-piano_arco-normal.mp3\n",
      "get 249 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_05_mezzo-piano_arco-normal.mp3\n",
      "get 250 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_1_mezzo-piano_non-vibrato.mp3\n",
      "get 251 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_1_pianissimo_arco-normal.mp3\n",
      "get 252 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_025_mezzo-forte_arco-col-legno-battuto.mp3\n",
      "get 253 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_05_fortissimo_arco-normal.mp3\n",
      "get 254 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_1_fortissimo_arco-normal.mp3\n",
      "get 255 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_025_mezzo-piano_arco-normal.mp3\n",
      "get 256 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_05_fortissimo_arco-normal.mp3\n",
      "get 257 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_025_forte_arco-normal.mp3\n",
      "get 258 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_05_forte_arco-normal.mp3\n",
      "get 259 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_15_forte_arco-normal.mp3\n",
      "get 260 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_05_mezzo-piano_arco-normal.mp3\n",
      "get 261 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_025_mezzo-piano_arco-normal.mp3\n",
      "get 262 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_15_forte_arco-normal.mp3\n",
      "get 263 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_1_pianissimo_arco-normal.mp3\n",
      "get 264 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_1_mezzo-forte_arco-harmonic.mp3\n",
      "get 265 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_025_forte_arco-normal.mp3\n",
      "get 266 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_15_fortissimo_arco-normal.mp3\n",
      "get 267 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_05_pianissimo_arco-normal.mp3\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "get 268 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_15_mezzo-piano_arco-normal.mp3\n",
      "get 269 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs2_025_pianissimo_arco-normal.mp3\n",
      "get 270 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_1_pianissimo_arco-normal.mp3\n",
      "get 271 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_1_fortissimo_arco-normal.mp3\n",
      "get 272 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_05_mezzo-piano_arco-normal.mp3\n",
      "get 273 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_1_pianissimo_arco-normal.mp3\n",
      "get 274 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_05_forte_arco-normal.mp3\n",
      "get 275 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_1_forte_arco-normal.mp3\n",
      "get 276 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_05_fortissimo_arco-normal.mp3\n",
      "get 277 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_15_mezzo-piano_arco-normal.mp3\n",
      "get 278 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_05_pianissimo_arco-normal.mp3\n",
      "get 279 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_1_mezzo-forte_arco-harmonic.mp3\n",
      "get 280 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_05_forte_arco-normal.mp3\n",
      "get 281 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_1_pianissimo_arco-normal.mp3\n",
      "get 282 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_025_mezzo-forte_arco-col-legno-battuto.mp3\n",
      "get 283 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_15_piano_arco-normal.mp3\n",
      "get 284 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_05_mezzo-piano_arco-normal.mp3\n",
      "get 285 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_025_pianissimo_arco-normal.mp3\n",
      "get 286 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_1_mezzo-piano_arco-normal.mp3\n",
      "get 287 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_05_pianissimo_arco-normal.mp3\n",
      "get 288 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_1_mezzo-piano_arco-normal.mp3\n",
      "get 289 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_025_pianissimo_arco-normal.mp3\n",
      "get 290 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_05_mezzo-piano_arco-normal.mp3\n",
      "get 291 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_05_forte_arco-normal.mp3\n",
      "get 292 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A3_1_fortissimo_arco-normal.mp3\n",
      "get 293 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A2_025_pianissimo_arco-normal.mp3\n",
      "get 294 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs3_025_mezzo-piano_arco-normal.mp3\n",
      "get 295 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_15_forte_arco-normal.mp3\n",
      "get 296 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs5_15_pianissimo_arco-normal.mp3\n",
      "get 297 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_15_mezzo-piano_arco-normal.mp3\n",
      "get 298 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_15_pianissimo_arco-normal.mp3\n",
      "get 299 of 600 = ./audio/london_phill_dataset_multi/cello/cello_Gs4_05_fortissimo_arco-normal.mp3\n",
      "get 300 of 600 = ./audio/london_phill_dataset_multi/cello/cello_A4_15_mezzo-piano_arco-normal.mp3\n",
      "get 301 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_1_fortissimo_snap-pizz.mp3\n",
      "get 302 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs3_025_piano_arco-normal.mp3\n",
      "get 303 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_1_piano_arco-normal.mp3\n",
      "get 304 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_05_mezzo-piano_arco-normal.mp3\n",
      "get 305 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs3_025_fortissimo_arco-normal.mp3\n",
      "get 306 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_15_pianissimo_arco-normal.mp3\n",
      "get 307 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_1_mezzo-forte_arco-minor-trill.mp3\n",
      "get 308 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_1_fortissimo_arco-normal.mp3\n",
      "get 309 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_05_fortissimo_arco-normal.mp3\n",
      "get 310 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_05_pianissimo_arco-normal.mp3\n",
      "get 311 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_15_forte_arco-normal.mp3\n",
      "get 312 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_15_pianissimo_arco-normal.mp3\n",
      "get 313 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_025_mezzo-piano_arco-normal.mp3\n",
      "get 314 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_05_forte_arco-normal.mp3\n",
      "get 315 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_025_piano_arco-normal.mp3\n",
      "get 316 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_05_pianissimo_arco-normal.mp3\n",
      "get 317 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_1_forte_arco-normal.mp3\n",
      "get 318 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_025_pianissimo_arco-normal.mp3\n",
      "get 319 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_025_fortissimo_arco-normal.mp3\n",
      "get 320 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_1_fortissimo_pizz-normal.mp3\n",
      "get 321 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_1_pianissimo_arco-normal.mp3\n",
      "get 322 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_1_forte_arco-normal.mp3\n",
      "get 323 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_05_piano_arco-normal.mp3\n",
      "get 324 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_1_fortissimo_arco-normal.mp3\n",
      "get 325 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A5_1_mezzo-forte_artificial-harmonic.mp3\n",
      "get 326 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Ds3_05_mezzo-piano_arco-normal.mp3\n",
      "get 327 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_1_piano_arco-normal.mp3\n",
      "get 328 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_025_pianissimo_arco-normal.mp3\n",
      "get 329 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_1_piano_arco-normal.mp3\n",
      "get 330 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_1_piano_pizz-normal.mp3\n",
      "get 331 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_025_piano_arco-normal.mp3\n",
      "get 332 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_1_fortissimo_arco-normal.mp3\n",
      "get 333 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_15_forte_arco-normal.mp3\n",
      "get 334 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_15_fortissimo_arco-normal.mp3\n",
      "get 335 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs3_15_fortissimo_arco-normal.mp3\n",
      "get 336 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_15_pianissimo_arco-normal.mp3\n",
      "get 337 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_025_forte_arco-normal.mp3\n",
      "get 338 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Ds3_1_piano_pizz-normal.mp3\n",
      "get 339 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_1_forte_arco-normal.mp3\n",
      "get 340 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A5_1_fortissimo_arco-normal.mp3\n",
      "get 341 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_1_pianissimo_arco-normal.mp3\n",
      "get 342 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_1_fortissimo_arco-normal.mp3\n",
      "get 343 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_05_fortissimo_arco-normal.mp3\n",
      "get 344 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_05_fortissimo_arco-normal.mp3\n",
      "get 345 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_025_fortissimo_arco-normal.mp3\n",
      "get 346 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_1_piano_arco-glissando.mp3\n",
      "get 347 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_05_fortissimo_arco-normal.mp3\n",
      "get 348 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_025_fortissimo_arco-normal.mp3\n",
      "get 349 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_05_mezzo-piano_arco-normal.mp3\n",
      "get 350 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_15_fortissimo_arco-normal.mp3\n",
      "get 351 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_15_fortissimo_arco-normal.mp3\n",
      "get 352 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_05_piano_arco-normal.mp3\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "get 353 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_1_mezzo-forte_arco-major-trill.mp3\n",
      "get 354 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_1_pianissimo_arco-normal.mp3\n",
      "get 355 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_025_mezzo-piano_arco-normal.mp3\n",
      "get 356 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_1_piano_pizz-normal.mp3\n",
      "get 357 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs3_15_piano_arco-normal.mp3\n",
      "get 358 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_025_mezzo-piano_arco-normal.mp3\n",
      "get 359 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_05_mezzo-piano_arco-normal.mp3\n",
      "get 360 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_025_pianissimo_arco-normal.mp3\n",
      "get 361 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_15_fortissimo_arco-normal.mp3\n",
      "get 362 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_1_mezzo-forte_molto-vibrato.mp3\n",
      "get 363 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_025_pianissimo_arco-normal.mp3\n",
      "get 364 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A5_1_pianissimo_arco-normal.mp3\n",
      "get 365 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_025_forte_arco-normal.mp3\n",
      "get 366 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_1_fortissimo_arco-normal.mp3\n",
      "get 367 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_15_mezzo-piano_arco-normal.mp3\n",
      "get 368 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_025_mezzo-piano_arco-normal.mp3\n",
      "get 369 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_1_pianissimo_arco-normal.mp3\n",
      "get 370 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_1_piano_arco-glissando.mp3\n",
      "get 371 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_1_mezzo-piano_non-vibrato.mp3\n",
      "get 372 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_1_mezzo-piano_non-vibrato.mp3\n",
      "get 373 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_15_piano_arco-normal.mp3\n",
      "get 374 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_1_mezzo-piano_arco-normal.mp3\n",
      "get 375 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_15_fortissimo_arco-normal.mp3\n",
      "get 376 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_025_pianissimo_arco-normal.mp3\n",
      "get 377 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_1_fortissimo_snap-pizz.mp3\n",
      "get 378 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_025_mezzo-piano_arco-normal.mp3\n",
      "get 379 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs3_025_mezzo-piano_arco-normal.mp3\n",
      "get 380 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_05_forte_arco-normal.mp3\n",
      "get 381 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_05_piano_arco-normal.mp3\n",
      "get 382 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_05_pianissimo_arco-normal.mp3\n",
      "get 383 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_05_forte_arco-normal.mp3\n",
      "get 384 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs3_025_pianissimo_arco-normal.mp3\n",
      "get 385 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_05_pianissimo_arco-normal.mp3\n",
      "get 386 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs3_15_pianissimo_arco-normal.mp3\n",
      "get 387 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_05_piano_arco-normal.mp3\n",
      "get 388 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_1_mezzo-forte_molto-vibrato.mp3\n",
      "get 389 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A5_1_forte_arco-normal.mp3\n",
      "get 390 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_05_fortissimo_arco-normal.mp3\n",
      "get 391 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_05_piano_arco-normal.mp3\n",
      "get 392 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs6_1_forte_arco-normal.mp3\n",
      "get 393 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_05_pianissimo_arco-normal.mp3\n",
      "get 394 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_025_fortissimo_arco-normal.mp3\n",
      "get 395 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Ds3_05_fortissimo_arco-normal.mp3\n",
      "get 396 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs4_1_piano_arco-normal.mp3\n",
      "get 397 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A4_025_piano_arco-normal.mp3\n",
      "get 398 of 600 = ./audio/london_phill_dataset_multi/viola/viola_A3_15_piano_arco-normal.mp3\n",
      "get 399 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_025_fortissimo_arco-normal.mp3\n",
      "get 400 of 600 = ./audio/london_phill_dataset_multi/viola/viola_Gs5_1_pianissimo_arco-normal.mp3\n",
      "get 401 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_025_forte_normal.mp3\n",
      "get 402 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_15_pianissimo_normal.mp3\n",
      "get 403 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_1_mezzo-forte_normal.mp3\n",
      "get 404 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_05_mezzo-piano_normal.mp3\n",
      "get 405 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_1_mezzo-forte_normal.mp3\n",
      "get 406 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_05_forte_normal.mp3\n",
      "get 407 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_025_forte_normal.mp3\n",
      "get 408 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_15_forte_normal.mp3\n",
      "get 409 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_025_pianissimo_normal.mp3\n",
      "get 410 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_025_forte_normal.mp3\n",
      "get 411 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_05_pianissimo_normal.mp3\n",
      "get 412 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A6_1_fortissimo_minor-trill.mp3\n",
      "get 413 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_025_piano_normal.mp3\n",
      "get 414 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_15_mezzo-forte_normal.mp3\n",
      "get 415 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_1_forte_normal.mp3\n",
      "get 416 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_05_pianissimo_normal.mp3\n",
      "get 417 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_025_pianissimo_normal.mp3\n",
      "get 418 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_05_forte_normal.mp3\n",
      "get 419 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_025_mezzo-forte_normal.mp3\n",
      "get 420 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_1_forte_normal.mp3\n",
      "get 421 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A6_1_mezzo-forte_normal.mp3\n",
      "get 422 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_15_pianissimo_normal.mp3\n",
      "get 423 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_05_mezzo-forte_normal.mp3\n",
      "get 424 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_05_piano_normal.mp3\n",
      "get 425 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_025_mezzo-piano_normal.mp3\n",
      "get 426 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_1_piano_normal.mp3\n",
      "get 427 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_025_pianissimo_normal.mp3\n",
      "get 428 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_05_mezzo-piano_normal.mp3\n",
      "get 429 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_15_piano_normal.mp3\n",
      "get 430 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_05_mezzo-piano_normal.mp3\n",
      "get 431 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_025_pianissimo_normal.mp3\n",
      "get 432 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_025_piano_normal.mp3\n",
      "get 433 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_1_pianissimo_normal.mp3\n",
      "get 434 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_025_mezzo-forte_normal.mp3\n",
      "get 435 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_025_mezzo-piano_normal.mp3\n",
      "get 436 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_025_piano_normal.mp3\n",
      "get 437 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_025_piano_normal.mp3\n",
      "get 438 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_05_mezzo-forte_normal.mp3\n",
      "get 439 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_15_forte_normal.mp3\n",
      "get 440 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_15_pianissimo_normal.mp3\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "get 441 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A6_05_piano_normal.mp3\n",
      "get 442 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_15_piano_normal.mp3\n",
      "get 443 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_05_piano_normal.mp3\n",
      "get 444 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_15_piano_normal.mp3\n",
      "get 445 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_15_mezzo-piano_normal.mp3\n",
      "get 446 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_15_mezzo-piano_normal.mp3\n",
      "get 447 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_15_forte_normal.mp3\n",
      "get 448 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_025_pianissimo_normal.mp3\n",
      "get 449 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A6_05_forte_normal.mp3\n",
      "get 450 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_15_mezzo-piano_normal.mp3\n",
      "get 451 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_025_mezzo-forte_normal.mp3\n",
      "get 452 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A6_05_mezzo-forte_normal.mp3\n",
      "get 453 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_025_mezzo-forte_normal.mp3\n",
      "get 454 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_15_forte_normal.mp3\n",
      "get 455 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_05_piano_normal.mp3\n",
      "get 456 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_05_piano_normal.mp3\n",
      "get 457 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_05_mezzo-forte_normal.mp3\n",
      "get 458 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_15_mezzo-forte_normal.mp3\n",
      "get 459 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_05_mezzo-piano_normal.mp3\n",
      "get 460 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_1_pianissimo_normal.mp3\n",
      "get 461 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_05_mezzo-forte_normal.mp3\n",
      "get 462 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_1_mezzo-forte_normal.mp3\n",
      "get 463 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_15_mezzo-piano_normal.mp3\n",
      "get 464 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_1_forte_normal.mp3\n",
      "get 465 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_1_piano_normal.mp3\n",
      "get 466 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A6_1_pianissimo_normal.mp3\n",
      "get 467 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_05_forte_normal.mp3\n",
      "get 468 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_05_forte_normal.mp3\n",
      "get 469 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_025_mezzo-forte_normal.mp3\n",
      "get 470 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_05_pianissimo_normal.mp3\n",
      "get 471 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_05_pianissimo_normal.mp3\n",
      "get 472 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_15_piano_normal.mp3\n",
      "get 473 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_1_mezzo-piano_normal.mp3\n",
      "get 474 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_025_piano_normal.mp3\n",
      "get 475 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_05_pianissimo_normal.mp3\n",
      "get 476 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_1_mezzo-piano_normal.mp3\n",
      "get 477 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_1_mezzo-piano_normal.mp3\n",
      "get 478 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_15_piano_normal.mp3\n",
      "get 479 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A6_1_forte_normal.mp3\n",
      "get 480 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_15_forte_normal.mp3\n",
      "get 481 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_15_pianissimo_normal.mp3\n",
      "get 482 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_05_mezzo-forte_normal.mp3\n",
      "get 483 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_025_mezzo-piano_normal.mp3\n",
      "get 484 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A6_15_forte_normal.mp3\n",
      "get 485 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_025_forte_normal.mp3\n",
      "get 486 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_1_piano_normal.mp3\n",
      "get 487 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_15_mezzo-forte_normal.mp3\n",
      "get 488 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A6_1_piano_normal.mp3\n",
      "get 489 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_1_pianissimo_normal.mp3\n",
      "get 490 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_15_mezzo-forte_normal.mp3\n",
      "get 491 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_05_forte_normal.mp3\n",
      "get 492 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_15_mezzo-forte_normal.mp3\n",
      "get 493 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_025_forte_normal.mp3\n",
      "get 494 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs6_05_piano_normal.mp3\n",
      "get 495 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs4_025_mezzo-piano_normal.mp3\n",
      "get 496 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A4_1_mezzo-forte_normal.mp3\n",
      "get 497 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_1_forte_normal.mp3\n",
      "get 498 of 600 = ./audio/london_phill_dataset_multi/flute/flute_Gs5_1_pianissimo_normal.mp3\n",
      "get 499 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A6_05_pianissimo_normal.mp3\n",
      "get 500 of 600 = ./audio/london_phill_dataset_multi/flute/flute_A5_1_piano_normal.mp3\n",
      "get 501 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A5_1_fortissimo_normal.mp3\n",
      "get 502 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_05_pianissimo_normal.mp3\n",
      "get 503 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A5_05_forte_normal.mp3\n",
      "get 504 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Ds4_025_fortissimo_normal.mp3\n",
      "get 505 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Ds4_05_pianissimo_subtone.mp3\n",
      "get 506 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_05_piano_normal.mp3\n",
      "get 507 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A5_1_pianissimo_normal.mp3\n",
      "get 508 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_1_fortissimo_normal.mp3\n",
      "get 509 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A5_05_pianissimo_normal.mp3\n",
      "get 510 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs3_05_piano_normal.mp3\n",
      "get 511 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A5_05_piano_normal.mp3\n",
      "get 512 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs3_05_pianissimo_normal.mp3\n",
      "get 513 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_05_piano_normal.mp3\n",
      "get 514 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_025_mezzo-piano_normal.mp3\n",
      "get 515 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_025_piano_normal.mp3\n",
      "get 516 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs3_1_pianissimo_normal.mp3\n",
      "get 517 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_05_forte_normal.mp3\n",
      "get 518 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A5_1_forte_normal.mp3\n",
      "get 519 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_05_fortissimo_normal.mp3\n",
      "get 520 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_1_pianissimo_normal.mp3\n",
      "get 521 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Ds4_025_mezzo-forte_normal.mp3\n",
      "get 522 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_1_forte_normal.mp3\n",
      "get 523 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Ds4_05_mezzo-forte_slap-tongue.mp3\n",
      "get 524 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_15_fortissimo_normal.mp3\n",
      "get 525 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_025_forte_normal.mp3\n",
      "get 526 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A5_1_piano_normal.mp3\n",
      "get 527 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_025_fortissimo_normal.mp3\n",
      "get 528 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_1_piano_normal.mp3\n",
      "get 529 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Ds4_15_fortissimo_normal.mp3\n",
      "get 530 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_05_forte_normal.mp3\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "get 531 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_025_pianissimo_normal.mp3\n",
      "get 532 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs3_15_pianissimo_normal.mp3\n",
      "get 533 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs3_05_mezzo-piano_normal.mp3\n",
      "get 534 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A5_15_forte_normal.mp3\n",
      "get 535 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_15_piano_normal.mp3\n",
      "get 536 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs3_05_forte_normal.mp3\n",
      "get 537 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_1_piano_normal.mp3\n",
      "get 538 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs3_025_forte_normal.mp3\n",
      "get 539 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Ds5_1_forte_minor-trill.mp3\n",
      "get 540 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_15_piano_normal.mp3\n",
      "get 541 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Ds4_025_pianissimo_normal.mp3\n",
      "get 542 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_1_forte_normal.mp3\n",
      "get 543 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_025_pianissimo_normal.mp3\n",
      "get 544 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Ds4_025_forte_normal.mp3\n",
      "get 545 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_1_piano_normal.mp3\n",
      "get 546 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs3_15_fortissimo_normal.mp3\n",
      "get 547 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs3_1_piano_normal.mp3\n",
      "get 548 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_1_pianissimo_normal.mp3\n",
      "get 549 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_1_forte_normal.mp3\n",
      "get 550 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_15_pianissimo_normal.mp3\n",
      "get 551 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_05_fortissimo_normal.mp3\n",
      "get 552 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_05_mezzo-piano_normal.mp3\n",
      "get 553 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_05_fortissimo_normal.mp3\n",
      "get 554 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_1_fortissimo_normal.mp3\n",
      "get 555 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_05_pianissimo_normal.mp3\n",
      "get 556 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_1_mezzo-forte_normal.mp3\n",
      "get 557 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Ds4_05_fortissimo_normal.mp3\n",
      "get 558 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_05_forte_normal.mp3\n",
      "get 559 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_025_forte_normal.mp3\n",
      "get 560 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_1_piano_normal.mp3\n",
      "get 561 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A5_15_fortissimo_normal.mp3\n",
      "get 562 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_05_forte_normal.mp3\n",
      "get 563 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_025_forte_normal.mp3\n",
      "get 564 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_025_piano_normal.mp3\n",
      "get 565 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_15_forte_normal.mp3\n",
      "get 566 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A5_15_pianissimo_normal.mp3\n",
      "get 567 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_05_piano_normal.mp3\n",
      "get 568 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_15_pianissimo_normal.mp3\n",
      "get 569 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A5_05_fortissimo_normal.mp3\n",
      "get 570 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_05_pianissimo_normal.mp3\n",
      "get 571 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_1_forte_normal.mp3\n",
      "get 572 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_15_forte_normal.mp3\n",
      "get 573 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_025_fortissimo_normal.mp3\n",
      "get 574 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_05_fortissimo_normal.mp3\n",
      "get 575 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_05_pianissimo_normal.mp3\n",
      "get 576 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_15_piano_normal.mp3\n",
      "get 577 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_025_fortissimo_normal.mp3\n",
      "get 578 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_025_piano_normal.mp3\n",
      "get 579 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_1_fortissimo_normal.mp3\n",
      "get 580 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_15_pianissimo_normal.mp3\n",
      "get 581 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_15_fortissimo_normal.mp3\n",
      "get 582 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_15_forte_normal.mp3\n",
      "get 583 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_025_mezzo-forte_normal.mp3\n",
      "get 584 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs3_025_mezzo-piano_normal.mp3\n",
      "get 585 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Ds4_05_mezzo-forte_normal.mp3\n",
      "get 586 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_025_fortissimo_normal.mp3\n",
      "get 587 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A4_1_pianissimo_normal.mp3\n",
      "get 588 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs3_025_fortissimo_normal.mp3\n",
      "get 589 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Ds4_05_pianissimo_normal.mp3\n",
      "get 590 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_1_fortissimo_normal.mp3\n",
      "get 591 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_1_pianissimo_normal.mp3\n",
      "get 592 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs5_15_fortissimo_normal.mp3\n",
      "get 593 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_15_forte_normal.mp3\n",
      "get 594 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Ds4_05_piano_normal.mp3\n",
      "get 595 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs4_05_mezzo-forte_normal.mp3\n",
      "get 596 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_15_fortissimo_normal.mp3\n",
      "get 597 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_05_piano_normal.mp3\n",
      "get 598 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Ds5_1_forte_major-trill.mp3\n",
      "get 599 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_Gs3_05_fortissimo_normal.mp3\n",
      "get 600 of 600 = ./audio/london_phill_dataset_multi/sax/saxophone_A3_025_forte_normal.mp3\n",
      "Calculated 600 feature vectors\n"
     ]
    }
   ],
   "source": [
    "# Load audio files, calculate features and create feature vectors\n",
    "feature_vectors = []\n",
    "sound_paths = []\n",
    "for i,f in enumerate(files):\n",
    "    print (\"get %d of %d = %s\"%(i+1, len(files), f))\n",
    "    try:\n",
    "        y, sr = librosa.load(f, sr=fs)\n",
    "        y/=y.max() #Normalize\n",
    "        if len(y) < 2:\n",
    "            print(\"Error loading %s\" % f)\n",
    "            continue\n",
    "        feat = get_features(y, sr)\n",
    "        feature_vectors.append(feat)\n",
    "        sound_paths.append(f)\n",
    "    except Exception as e:\n",
    "        print(\"Error loading %s. Error: %s\" % (f,e))\n",
    "        \n",
    "print(\"Calculated %d feature vectors\"%len(feature_vectors))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Standardization: Zero-Mean and Unit-Variance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Feature vectors shape: (600, 13)\n"
     ]
    }
   ],
   "source": [
    "# Scale features using Standard Scaler\n",
    "scaler = StandardScaler()\n",
    "scaled_feature_vectors = scaler.fit_transform(np.array(feature_vectors))\n",
    "print(\"Feature vectors shape:\",scaled_feature_vectors.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Train and Test Sets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create Train and Test Set\n",
    "splitter = StratifiedShuffleSplit(n_splits=1, test_size=testset_size, random_state=0)\n",
    "splits = splitter.split(scaled_feature_vectors, classes_num)\n",
    "for train_index, test_index in splits:\n",
    "    train_set = scaled_feature_vectors[train_index]\n",
    "    test_set = scaled_feature_vectors[test_index]\n",
    "    train_classes = classes_num[train_index]\n",
    "    test_classes = classes_num[test_index]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train_set shape: (450, 13)\n",
      "test_set shape: (150, 13)\n",
      "train_classes shape: (450,)\n",
      "test_classes shape: (150,)\n"
     ]
    }
   ],
   "source": [
    "# Check Set Shapes\n",
    "print(\"train_set shape:\",train_set.shape)\n",
    "print(\"test_set shape:\",test_set.shape)\n",
    "print(\"train_classes shape:\",train_classes.shape)\n",
    "print(\"test_classes shape:\",test_classes.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<center><iframe src=\"https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm\" width=\"800\" height=\"600\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\">Loading...</iframe></center>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "show_web(\"https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## kNN Classification"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# KNN Classifier\n",
    "n_neighbors=1\n",
    "model_knn = KNeighborsClassifier(n_neighbors=n_neighbors)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# kNN\n",
    "model_knn.fit(train_set, train_classes);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Predict using the Test Set\n",
    "predicted_labels = model_knn.predict(test_set)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Evaluation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Recall:  [0.96 1.   0.96 1.   1.   0.92]\n",
      "Precision:  [1.         0.96153846 1.         0.96153846 0.96153846 0.95833333]\n",
      "F1-Score:  [0.97959184 0.98039216 0.97959184 0.98039216 0.98039216 0.93877551]\n",
      "Accuracy: 0.97  , 146\n",
      "Number of samples: 150\n"
     ]
    }
   ],
   "source": [
    "# Recall - the ability of the classifier to find all the positive samples\n",
    "print(\"Recall: \", recall_score(test_classes, predicted_labels,average=None))\n",
    "\n",
    "# Precision - The precision is intuitively the ability of the classifier not to \n",
    "#label as positive a sample that is negative\n",
    "print(\"Precision: \", precision_score(test_classes, predicted_labels,average=None))\n",
    "\n",
    "# F1-Score - The F1 score can be interpreted as a weighted average of the precision \n",
    "#and recall\n",
    "print(\"F1-Score: \", f1_score(test_classes, predicted_labels, average=None))\n",
    "\n",
    "# Accuracy - the number of correctly classified samples\n",
    "print(\"Accuracy: %.2f  ,\" % accuracy_score(test_classes, predicted_labels,normalize=True), accuracy_score(test_classes, predicted_labels,normalize=False) )\n",
    "print(\"Number of samples:\",test_classes.shape[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute confusion matrix\n",
    "cnf_matrix = confusion_matrix(test_classes, predicted_labels)\n",
    "np.set_printoptions(precision=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Function to Plot Confusion Matrix\n",
    "# http://scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html\n",
    "def plot_confusion_matrix(cm, classes,\n",
    "                          normalize=False,\n",
    "                          title='Confusion matrix',\n",
    "                          cmap=plt.cm.Blues):\n",
    "    \"\"\"\n",
    "    This function prints and plots the confusion matrix.\n",
    "    Normalization can be applied by setting `normalize=True`.\n",
    "    \n",
    "    if normalize:\n",
    "        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
    "        print(\"Normalized confusion matrix\")\n",
    "    else:\n",
    "        print('Confusion matrix, without normalization')\n",
    "    \"\"\"\n",
    "    #print(cm)\n",
    "\n",
    "    plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
    "    plt.title(title)\n",
    "    plt.colorbar()\n",
    "    tick_marks = np.arange(len(classes))\n",
    "    plt.xticks(tick_marks, classes, rotation=45)\n",
    "    plt.yticks(tick_marks, classes)\n",
    "\n",
    "    fmt = '.2f' if normalize else 'd'\n",
    "    thresh = cm.max() / 2.\n",
    "    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
    "        plt.text(j, i, format(cm[i, j], fmt),\n",
    "                 horizontalalignment=\"center\",\n",
    "                 color=\"white\" if cm[i, j] > thresh else \"black\")\n",
    "\n",
    "    plt.tight_layout()\n",
    "    plt.ylabel('True label')\n",
    "    plt.xlabel('Predicted label')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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kRBTVEIAAAAAoxBCAAAAAKPQjgEAAAAzohtjmkoIAAAAYBRCCAAAAGAU2jEAAABgFsruGIuphAAAAABGIYQAAAAARiGEAAAAAEZhJgQAAADMjKEQC6mEAAAAAEYhhAAAAABGoR0DAAAAZqBii87FVEIAAAAAoxBCAAAAAKMQQgAAAACjMBMCAAAAZsRIiGkqIdgg7zvxvbntnrtnz1vdIn/9smPmvRxWiKc88bHZ7Wbb54773m7eS2EFct5hKZx3WCrnHDbETjfaOu/960Ny5r88Omf886Pz5N/fJ0nywsPunE/+0+E59djD8s5jHpLtb3CdOa8Uli8hBOu1du3aPONpT87b3/mefOqzZ+fNx78pXzj77HkvixXgYY/4o7zl/7173stgBXLeYamcd1gK5xw21CVrL82R//Th3P6xr8ldn/aGPOGg386tdr5BXv7mT+YOT3htflv1R+sAABi4SURBVPeJr8t7Tv1KnvOIO817qbBsCSFYr9M++cnsuust8ls3v3m23HLLPOShh+Rd73z7vJfFCvB7d75Ltr3+9ee9DFYg5x2WynmHpXDOYUN95/s/y6e//L9Jkp9etCbnfON72eGG18lPfr7mssdca6st0t3zWiLLUNXK+BqLEIL1+va3V2ennW562fUdd9wpq1evnuOKgE2d8w4wJucclmLn7a6bvW+xXU475/wkydGP+j85941PzCH32CMvft3H5rw6WL5WVAhRVTtU1VvW85i7VdW7xloTAABw9XLtrbbIm154cJ71jx+8rAri6H87ObsdemyO/9DZeeIDbz/nFcLytaJCiO7+dnc/eN7ruLrZYYcd861vffOy66tXfys77rjjHFcEbOqcd4AxOeewMVZtvlnedNTBOeFDZ+ftHzv31+4/4YNn5+A733IOK2O5qhXy31iWbQhRVcdU1ZMXXD+6qo6oqrMm17eqqn+rqs9V1aeq6u6X8xx3qKqPT+7/n6rafcyfYVOx73775ctfPjdfO++8rFmzJm8+4fjc/8CD5r0sYBPmvAOMyTmHjXHsnx6QL37je3nlW0+/7LZdd9z2sssH3mm3fOmb35/H0mBFWDXvBVyJE5L8XZK/n1z/wyRPSHL45PqTk3R336aqbpXkfVW1OHI8J8n/6e5LqupeSf4yyR8sfqGqenySxyfJTXfe+ar+OVa8VatW5eWveHUecP/7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\n",
      "text/plain": [
       "<Figure size 1296x936 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot non-normalized confusion matrix\n",
    "plt.figure(figsize=(18,13))\n",
    "plot_confusion_matrix(cnf_matrix, classes=labelencoder.classes_,\n",
    "                      title='Confusion matrix, without normalization')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Find wrong predicted samples indexes\n",
    "#wrong_predictions = [i for i, (e1, e2) in enumerate(zip(test_classes, predicted_labels)) if e1 != e2]\n",
    "wrong_predictions = [i for i, (e1, e2) in enumerate(zip(predicted_labels,test_classes)) if e1 != e2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['oboe' 'cello' 'viola' 'viola']\n",
      "[4 5 1 3]\n",
      "['trumpet' 'viola' 'flute' 'sax']\n",
      "['./audio/london_phill_dataset_multi/oboe/oboe_As3_05_mezzo-forte_normal.mp3'\n",
      " './audio/london_phill_dataset_multi/cello/cello_A4_05_pianissimo_arco-normal.mp3'\n",
      " './audio/london_phill_dataset_multi/viola/viola_A4_1_piano_arco-glissando.mp3'\n",
      " './audio/london_phill_dataset_multi/viola/viola_A4_1_mezzo-piano_non-vibrato.mp3']\n"
     ]
    }
   ],
   "source": [
    "# Find wrong predicted audio files\n",
    "print(np.array(labels)[test_index[wrong_predictions]])\n",
    "print(predicted_labels[wrong_predictions].T)\n",
    "print(labelencoder.inverse_transform(predicted_labels[wrong_predictions]))\n",
    "print(np.array(files)[test_index[wrong_predictions]])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
